(function($) {
    $.fn.ff_container = function() {
        var url_img_wait = '/images/wait.gif';
        var url_img_refresh = '/images/refresh.png';
        var container_id = $(this).attr('id');

        $(this).html(
            '<div class="dashboard_subtitle">'
                +'Followers-and-Friends'
                +'</div>'
                +'<div class="text_content">'
                +'<img src="'+url_img_wait+'" class="img_wait" />'
                +'</div>'
        );

        $.getJSON('/ajax/ff/get', function(data) {
            $('div.text_content', '#'+container_id).remove();

            $('div.dashboard_subtitle', '#'+container_id).prepend(
                '<div class="div_refresh">'
                    +'<img src="'+url_img_refresh+'" class="img_refresh" />'
                    +'</div>'
            );

            $('img.img_refresh', 'div.dashboard_subtitle', '#'+container_id).click(function() {
                if ($(this).attr('src') == url_img_refresh) {
                    $(this).attr('src', url_img_wait);

                    $.getJSON('/ajax/ff/update', function() {
                        $('.img_refresh', '#'+container_id).attr('src', url_img_refresh);
                        $('#'+container_id).ff_container();
                    });
                }
            });

            if (data.length > 0) {
                for (var i=0; i<data.length; i++) {
                    $('#'+container_id).append(
                        '<div class="ff text_content">'
                            +'<a href="https://twitter.com/'+data[i].screen_name+'" '
                            +'title="@'+data[i].screen_name+' on Twitter">'
                            +data[i].name
                            +'</a>'
                            +'</div>'
                    );
                }
            }
            else {
                $('#'+container_id).append(
                    '<div class="text_content">'
                        +'No followers-and-friends stored on server.'
                        +'</div>'
                );
            }
        });
    };
})(jQuery);